home *** CD-ROM | disk | FTP | other *** search
/ MacWorld: Complete Mac Interactive / Macworld Complete Mac Interactive CD)(1994).iso / The Best of BMUG / Utilities / Text and Speech / Alpha.5.76 / xtcls / example1.c < prev    next >
C/C++ Source or Header  |  1994-06-28  |  820b  |  44 lines

  1. #include "xtcl.h"
  2.  
  3. /*
  4.  * Simple XTCL. Merely concatenates its arguments, separated by spaces.
  5.  * To run, use the Tcl shell to cd to the 'xtcls' direcotry and type
  6.  * "xtclcmd -f :concat Concat one two three"
  7.  */
  8.  
  9. void
  10. main(argc, argv, xpb)
  11. long        argc;
  12. char        **argv;
  13. XTCLParmBlk    *xpb;
  14. {
  15.     char    *ptr, state;
  16.     long    i, length, slen;
  17.  
  18.     xpb->result = TCL_OK;
  19.     length = GetHandleSize(xpb->resultH);
  20.     
  21.     for (i = 1, slen = 0; i < argc; i++)
  22.     {
  23.         slen += strlen(argv[i]) + 1;
  24.     }
  25.     slen++;
  26.  
  27.     // make power of four for luck's sake
  28.     slen += (sizeof(int) - (slen % sizeof(int)));
  29.     SetHandleSize(xpb->resultH, (long)slen);
  30.     
  31.     state = HGetState(xpb->resultH);
  32.     HLock(xpb->resultH);
  33.     
  34.     for (ptr=*xpb->resultH, i=1; i < argc; i++) {
  35.         strcat(ptr, argv[i]);
  36.         strcat(ptr, " ");
  37.         ptr += strlen(ptr);
  38.     }
  39.  
  40.     HSetState(xpb->resultH, state);
  41. }
  42.  
  43.  
  44.